package question2;
//工厂模式

//使用new关键字创建对象的缺点是耦合度太高，工厂设计模式利用Java的反射机制来实例化对象降低了这种耦合度

import java.util.Date;

interface Fruit {
	public void eat();
}

class Apple implements Fruit {
	@Override
	public void eat() {
		System.out.println("吃苹果");

	}
}

class Orange implements Fruit {
	@Override
	public void eat() {
		System.out.println("吃橘子");
	}
}

class Factory {
	public static Fruit getInstance(String className) {
		Fruit f = null;
		try {
			Class<?> cla = Class.forName(className);
			f = (Fruit) cla.newInstance();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return f;

	}
}

public class Hello3 {
	public static void main(String[] args) throws Exception {
		Fruit f = Factory.getInstance("question2");
		f.eat();

	}
}